class ArchievesWeaponEntity {
	int maxWeaponLevel;
	List<ArchievesWeaponUpgradegood> upgradeGoods;
	ArchievesWeaponCurrentweaponproperty nextWeaponProperty;
	ArchievesWeaponCurrentform currentForm;
	ArchievesWeaponCurrentweaponproperty currentWeaponProperty;
	ArchievesWeaponCurrentform nextForm;
	List<ArchievesWeaponUpgradegood> formUpgradeGoods;
	int weaponLevel;
	int maxFormLevel;
	int formLevel;

	ArchievesWeaponEntity({this.maxWeaponLevel, this.upgradeGoods, this.nextWeaponProperty, this.currentForm, this.currentWeaponProperty, this.nextForm, this.formUpgradeGoods, this.weaponLevel, this.maxFormLevel, this.formLevel});

	ArchievesWeaponEntity.fromJson(Map<String, dynamic> json) {
		maxWeaponLevel = json['maxWeaponLevel'];
		if (json['upgradeGoods'] != null) {
			upgradeGoods = new List<ArchievesWeaponUpgradegood>();(json['upgradeGoods'] as List).forEach((v) { upgradeGoods.add(new ArchievesWeaponUpgradegood.fromJson(v)); });
		}
		nextWeaponProperty = json['nextWeaponProperty'] != null ? new ArchievesWeaponCurrentweaponproperty.fromJson(json['nextWeaponProperty']) : null;
		currentForm = json['currentForm'] != null ? new ArchievesWeaponCurrentform.fromJson(json['currentForm']) : null;
		currentWeaponProperty = json['currentWeaponProperty'] != null ? new ArchievesWeaponCurrentweaponproperty.fromJson(json['currentWeaponProperty']) : null;
		nextForm = json['nextForm'] != null ? new ArchievesWeaponCurrentform.fromJson(json['nextForm']) : null;
		if (json['formUpgradeGoods'] != null) {
			formUpgradeGoods = new List<ArchievesWeaponUpgradegood>();(json['formUpgradeGoods'] as List).forEach((v) { formUpgradeGoods.add(new ArchievesWeaponUpgradegood.fromJson(v)); });
		}
		weaponLevel = json['weaponLevel'];
		maxFormLevel = json['maxFormLevel'];
		formLevel = json['formLevel'];
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		data['maxWeaponLevel'] = this.maxWeaponLevel;
		if (this.upgradeGoods != null) {
      data['upgradeGoods'] =  this.upgradeGoods.map((v) => v.toJson()).toList();
    }
		if (this.nextWeaponProperty != null) {
      data['nextWeaponProperty'] = this.nextWeaponProperty.toJson();
    }
		if (this.currentForm != null) {
      data['currentForm'] = this.currentForm.toJson();
    }
		if (this.currentWeaponProperty != null) {
      data['currentWeaponProperty'] = this.currentWeaponProperty.toJson();
    }
		if (this.nextForm != null) {
      data['nextForm'] = this.nextForm.toJson();
    }
		if (this.formUpgradeGoods != null) {
      data['formUpgradeGoods'] =  this.formUpgradeGoods.map((v) => v.toJson()).toList();
    }
		data['weaponLevel'] = this.weaponLevel;
		data['maxFormLevel'] = this.maxFormLevel;
		data['formLevel'] = this.formLevel;
		return data;
	}
}

class ArchievesWeaponUpgradegood {
	String picUrl;
	int userNum;
	String picUrlBig;
	String professionName;
	int num;
	String name;
	String id;
	int goodsType;
	int quality;

	ArchievesWeaponUpgradegood({this.picUrl, this.userNum, this.picUrlBig, this.professionName, this.num, this.name, this.id, this.goodsType, this.quality});

	ArchievesWeaponUpgradegood.fromJson(Map<String, dynamic> json) {
		picUrl = json['picUrl'];
		userNum = json['userNum'];
		picUrlBig = json['picUrlBig'];
		professionName = json['professionName'];
		num = json['num'];
		name = json['name'];
		id = json['id'];
		goodsType = json['goodsType'];
		quality = json['quality'];
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		data['picUrl'] = this.picUrl;
		data['userNum'] = this.userNum;
		data['picUrlBig'] = this.picUrlBig;
		data['professionName'] = this.professionName;
		data['num'] = this.num;
		data['name'] = this.name;
		data['id'] = this.id;
		data['goodsType'] = this.goodsType;
		data['quality'] = this.quality;
		return data;
	}
}

class ArchievesWeaponNextweaponproperty {
	int res;
	int def;
	int hp;
	int atk;

	ArchievesWeaponNextweaponproperty({this.res, this.def, this.hp, this.atk});

	ArchievesWeaponNextweaponproperty.fromJson(Map<String, dynamic> json) {
		res = json['res'];
		def = json['def'];
		hp = json['hp'];
		atk = json['atk'];
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		data['res'] = this.res;
		data['def'] = this.def;
		data['hp'] = this.hp;
		data['atk'] = this.atk;
		return data;
	}
}

class ArchievesWeaponCurrentform {
	String picUrl;
	int res;
	int def;
	String name;
	int hp;
	String actionId;
	int atk;
	int formLevel;
	String weaponFormId;
	int levelNeed;
	int addition;

	ArchievesWeaponCurrentform({this.picUrl, this.res, this.def, this.name, this.hp, this.actionId, this.atk, this.formLevel, this.weaponFormId, this.levelNeed, this.addition});

	ArchievesWeaponCurrentform.fromJson(Map<String, dynamic> json) {
		picUrl = json['picUrl'];
		res = json['res'];
		def = json['def'];
		name = json['name'];
		hp = json['hp'];
		actionId = json['actionId'];
		atk = json['atk'];
		formLevel = json['formLevel'];
		weaponFormId = json['weaponFormId'];
		levelNeed = json['levelNeed'];
		addition = json['addition'];
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		data['picUrl'] = this.picUrl;
		data['res'] = this.res;
		data['def'] = this.def;
		data['name'] = this.name;
		data['hp'] = this.hp;
		data['actionId'] = this.actionId;
		data['atk'] = this.atk;
		data['formLevel'] = this.formLevel;
		data['weaponFormId'] = this.weaponFormId;
		data['levelNeed'] = this.levelNeed;
		data['addition'] = this.addition;
		return data;
	}
}

class ArchievesWeaponCurrentweaponproperty {
	int res;
	int def;
	int hp;
	int atk;

	ArchievesWeaponCurrentweaponproperty({this.res, this.def, this.hp, this.atk});

	ArchievesWeaponCurrentweaponproperty.fromJson(Map<String, dynamic> json) {
		res = json['res'];
		def = json['def'];
		hp = json['hp'];
		atk = json['atk'];
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		data['res'] = this.res;
		data['def'] = this.def;
		data['hp'] = this.hp;
		data['atk'] = this.atk;
		return data;
	}
}

class ArchievesWeaponNextform {
	String picUrl;
	int res;
	int def;
	String name;
	int hp;
	String actionId;
	int atk;
	int formLevel;
	String weaponFormId;
	int levelNeed;
	int addition;

	ArchievesWeaponNextform({this.picUrl, this.res, this.def, this.name, this.hp, this.actionId, this.atk, this.formLevel, this.weaponFormId, this.levelNeed, this.addition});

	ArchievesWeaponNextform.fromJson(Map<String, dynamic> json) {
		picUrl = json['picUrl'];
		res = json['res'];
		def = json['def'];
		name = json['name'];
		hp = json['hp'];
		actionId = json['actionId'];
		atk = json['atk'];
		formLevel = json['formLevel'];
		weaponFormId = json['weaponFormId'];
		levelNeed = json['levelNeed'];
		addition = json['addition'];
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		data['picUrl'] = this.picUrl;
		data['res'] = this.res;
		data['def'] = this.def;
		data['name'] = this.name;
		data['hp'] = this.hp;
		data['actionId'] = this.actionId;
		data['atk'] = this.atk;
		data['formLevel'] = this.formLevel;
		data['weaponFormId'] = this.weaponFormId;
		data['levelNeed'] = this.levelNeed;
		data['addition'] = this.addition;
		return data;
	}
}

class ArchievesWeaponFormupgradegood {
	String picUrl;
	int userNum;
	String picUrlBig;
	String professionName;
	int num;
	String name;
	String id;
	int goodsType;
	int quality;

	ArchievesWeaponFormupgradegood({this.picUrl, this.userNum, this.picUrlBig, this.professionName, this.num, this.name, this.id, this.goodsType, this.quality});

	ArchievesWeaponFormupgradegood.fromJson(Map<String, dynamic> json) {
		picUrl = json['picUrl'];
		userNum = json['userNum'];
		picUrlBig = json['picUrlBig'];
		professionName = json['professionName'];
		num = json['num'];
		name = json['name'];
		id = json['id'];
		goodsType = json['goodsType'];
		quality = json['quality'];
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		data['picUrl'] = this.picUrl;
		data['userNum'] = this.userNum;
		data['picUrlBig'] = this.picUrlBig;
		data['professionName'] = this.professionName;
		data['num'] = this.num;
		data['name'] = this.name;
		data['id'] = this.id;
		data['goodsType'] = this.goodsType;
		data['quality'] = this.quality;
		return data;
	}
}
